package com.vitogiovanni.tobook.entity;

import java.util.Set;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;

@PersistenceCapable
public class Locale {

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Key id;

	@Persistent
	private String nome;

	@Persistent
	private String email;

	@Persistent
	private String telefono;

	@Persistent
	private String via;

	@Persistent
	private String citta;

	@Persistent
	private String nazione;

	@Persistent
	private double coordinataX;

	@Persistent
	private double coordinataY;

	@Persistent
	private int numeroPosti;

	@Persistent
	private Gestore idGestore;
	
	@Persistent
	private Set<Key> tipologiaLocale;
	
	@Persistent
	private String sitoWeb;
	
	@Persistent (mappedBy = "localePrenotato")
	private Set<Prenotazione> prenotazioni;
	
	@Persistent (mappedBy = "locale")
	private Set<Foto> foto;
	
	@Persistent
	private Foto avatar;
	
	@Persistent (mappedBy = "locale")
	private Set<OrariApertura> orariLocale;

	@Persistent
	private Set<Key> servizi;
	
	@Persistent
	private Menu menu;
	
	public Key getId() {
		return id;
	}

	public void setId(Key id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getVia() {
		return via;
	}

	public void setVia(String via) {
		this.via = via;
	}

	public String getCitta() {
		return citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}

	public String getNazione() {
		return nazione;
	}

	public void setNazione(String nazione) {
		this.nazione = nazione;
	}

	public int getNumeroPosti() {
		return numeroPosti;
	}

	public void setNumeroPosti(int numeroPosti) {
		this.numeroPosti = numeroPosti;
	}

	public Gestore getIdGestore() {
		return idGestore;
	}

	public void setIdGestore(Gestore idGestore) {
		this.idGestore = idGestore;
	}
	
	public double getCoordinataX() {
		return coordinataX;
	}

	public void setCoordinataX(double coordinataX) {
		this.coordinataX = coordinataX;
	}

	public double getCoordinataY() {
		return coordinataY;
	}

	public void setCoordinataY(double coordinataY) {
		this.coordinataY = coordinataY;
	}

	public Set<Key> getTipologia() {
		return tipologiaLocale;
	}

	public void setTipologia(Set<Key> tipologia) {
		this.tipologiaLocale = tipologia;
	}

	public Set<Prenotazione> getPrenotazioni() {
		return prenotazioni;
	}

	public void setPrenotazioni(Set<Prenotazione> prenotazioni) {
		this.prenotazioni = prenotazioni;
	}

	public Set<Foto> getFoto() {
		return foto;
	}

	public void setFoto(Set<Foto> foto) {
		this.foto = foto;
	}

	public Foto getAvatar() {
		return avatar;
	}

	public void setAvatar(Foto avatar) {
		this.avatar = avatar;
	}

	public Set<OrariApertura> getOrariLocale() {
		return orariLocale;
	}

	public void setOrariLocale(Set<OrariApertura> orariLocale) {
		this.orariLocale = orariLocale;
	}

	public Set<Key> getServizi() {
		return servizi;
	}

	public void setServizi(Set<Key> servizi) {
		this.servizi = servizi;
	}

	public Menu getMenu() {
		return menu;
	}

	public void setMenu(Menu menu) {
		this.menu = menu;
	}

	public String getSitoWeb() {
		return sitoWeb;
	}

	public void setSitoWeb(String sitoWeb) {
		this.sitoWeb = sitoWeb;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Locale other = (Locale) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

	
}
